home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 3 / ACE CD 3.iso / files / utils / real3d32.dms / in.adf / RPL.LZH / RPL / dumpobj.rpl < prev    next >
Encoding:
Text File  |  1995-04-18  |  1.5 KB  |  81 lines

  1. (
  2. ( Scans through object tree and prints out object attributes
  3. (
  4.  
  5. "objects.rpl" LOAD
  6. "locks.rpl" LOAD
  7.  
  8. 300 STRING sBuffer
  9.  
  10. : DmpObjAttrs
  11.     PARAM 
  12.         VARIABLE iCnt    ( recursion depth
  13.         VARIABLE aFile    
  14.         VARIABLE aObject
  15.     ENDPARAM
  16.  
  17.     ( handle indenting
  18.     iCnt FETCH 0 
  19.     DO
  20.         " " aFile FETCH FPUTS DROP
  21.     LOOP
  22.  
  23.     ( name
  24.     aObject FETCH O.sNAME + "%-10s" sBuffer SPRINTF
  25.     sBuffer aFile FETCH FPUTS DROP
  26.  
  27.     ( handle indenting
  28.     20 iCnt FETCH - 0 
  29.     DO
  30.         " " aFile FETCH FPUTS DROP
  31.     LOOP
  32.  
  33.     ( other attributes 
  34.     "X      X       X       X       X       X       X      X" aFile FETCH FPUTS DROP
  35.  
  36.     "|n" sBuffer SPRINTF
  37.     sBuffer aFile FETCH FPUTS DROP
  38. ;
  39.  
  40. : DmpObj
  41.     PARAM 
  42.         VARIABLE aObj       ( object to be dumped 
  43.         VARIABLE iLevel     ( recursion level for indenting 
  44.         VARIABLE aFile
  45.     ENDPARAM
  46.  
  47.     ( Dump object attributes to a file
  48.     iLevel FETCH aFile FETCH aObj FETCH DmpObjAttrs
  49.  
  50.     ( recursively handle sub objects
  51.     aObj FETCH O_GETSUB
  52.     BEGIN DUP WHILE
  53.         DUP iLevel FETCH 1 + aFile FETCH DmpObj
  54.         O_GETNEXT 
  55.     REPEAT
  56.     DROP
  57. ;
  58.  
  59. : DmpObjects
  60.     PARAM
  61.         VARIABLE aFileName
  62.     ENDPARAM
  63.     VARIABLE aFile
  64.  
  65.     ( Open file 
  66.     aFileName FETCH "w" FOPEN DUP aFile STORE
  67.     NOT IF
  68.         aFileName FETCH "Cannot open file %s" ERROR
  69.     ENDIF
  70.  
  71.     ( Dump objects
  72.     iLOCK_SHARED O_LOCK
  73.     O_GETROOT 0 aFile FETCH DmpObj
  74.     iLOCK_REMOVE O_LOCK
  75.  
  76.     ( close file
  77.     aFile FETCH FCLOSE
  78. ;
  79.  
  80. "ram:test" DmpObjects
  81.